import httpGraphql from "./graphql";
import gql from "graphql-tag";
import moment from 'moment'
import {
	print
} from "graphql";
// import {
// 	graphqlUrl
// } from "@/config/netConfig.js"
// const graphqlUrl = "http://118.24.248.178:8080/v1/graphql";
const graphqlUrl = "https://zjb.fendou.life/apiv/v1/graphql";
// 注册及更新用户,注册时送10分
export function checkUser(variables) {
	let postData = gql`
  mutation insert_user_one_on_conflict($openid: String = "", $scores_number: Int = 10) {
    insert_user_one(object: {openid: $openid, scores: {data: {scores_number: $scores_number}, on_conflict: {constraint: scores_user_id_key}}}, on_conflict: {constraint: user_openid_key, where: {}, update_columns: openid}) {
      avatarUrl
      user_name
      user_gender
      user_status
      openid
      id
    }
  }
  


  `;
	return httpGraphql.post(graphqlUrl, {
		query: print(postData),
		variables,

	});
}
// 根据uid检查用户账号状态
export function checkUserStatus(id) {
	let postData = gql`
    query QueryUser($id: uuid_comparison_exp = { _eq: "" }) {
      user(where: { id: $id }) {
        user_status
        user_name
        createdat
        avatarUrl
        id
		user_gender
      }
    }
  `;
	return httpGraphql.post(graphqlUrl, {
		query: print(postData),
		variables: {
			id: {
				_eq: id,
			},
		},


	});
}
// 修改用户信息
export function update_user_by_pk(variables) {
	let postData = gql`
mutation update_user_by_pk($id: uuid = "", $_set: user_set_input = {}) {
  update_user_by_pk(pk_columns: {id: $id}, _set: $_set) {
    id
    user_name
    user_gender
	avatarUrl
  }
}

  `;
	return httpGraphql.post(graphqlUrl, {
		query: print(postData),
		variables,

	});
}


// 查询目标
export function query_todo_item(variables = null) {
	let postData = gql`
  query todo_item($limit: Int = 10, $offset: Int = 0, $order_by: [todo_item_order_by!] = {}, $where: todo_item_bool_exp = {}, $todo_date: date_comparison_exp = {}, $where1: todo_item_need_do_bool_exp = {todo_status: {_eq: true}}) {
    todo_item(limit: $limit, offset: $offset, order_by: $order_by, where: $where) {
      created_at
      user {
        avatarUrl
        user_name
        user_gender
      }
      id
      todo_end_time
      todo_item_description
      todo_item_loop_time
      todo_item_name
      todo_item_progress
      todo_item_score
      todo_item_show
      todo_item_status
      todo_start_time
      updated_at
      user_id
      sort
      todo_remind_time
      todo_item_need_dos(where: {todo_status: {_eq: false}, todo_date: $todo_date}) {
        id
        todo_status
        user_id
        todo_item_id
        todo_date
      }
      finished: todo_item_need_dos_aggregate(where: {todo_status: {_eq: true}}) {
        aggregate {
          count
        }
      }
      todo: todo_item_need_dos_aggregate(where: $where1) {
        aggregate {
          count
        }
      }
      todo_item_need_nums
      todo_item_views
	  todo_item_thumbs_up
	  todo_item_task_cycle
		todo_item_reminds_aggregate {
			aggregate {
				count
			}
		}
    }
    todo_item_aggregate(where: $where) {
      aggregate {
        count
      }
    }
  }

  `;
	variables.where1 = {
		"todo_status": {
			"_eq": false
		},
		"todo_date": {
			"_gt": moment().format('yyyy-MM-DD')
		}
	}

	console.log(variables, "variables]]]]]]]]]]]]]]");
	return httpGraphql.post(graphqlUrl, {
		query: print(postData),
		variables,
	});
}
// 查询任务详情页面
export function todo_item_by_pk(id = '') {
	let postData = gql`
  query todo_item_by_pk($id: uuid = "", $where1: todo_item_need_do_bool_exp = {todo_status: {_eq: true}}, $todo_date: date_comparison_exp = {}) {
    todo_item_by_pk(id: $id) {
      created_at
      user {
        avatarUrl
        user_name
        user_gender
      }
      id
      todo_end_time
      todo_item_description
      todo_item_loop_time
      todo_item_name
      todo_item_progress
      todo_item_score
      todo_item_show
      todo_item_status
      todo_start_time
      updated_at
      user_id
      sort
      todo_remind_time
      todo_item_need_dos(where: {todo_status: {_eq: false}, todo_date: $todo_date}) {
        id
        todo_status
        user_id
        todo_item_id
        todo_date
      }
      finished: todo_item_need_dos_aggregate(where: {todo_status: {_eq: true}}) {
        aggregate {
          count
        }
      }
      todo: todo_item_need_dos_aggregate(where: $where1) {
        aggregate {
          count
        }
      }
      todo_item_need_nums
      todo_item_notes {
        content
        created_at
        id
      }
      todo_item_views
	  todo_item_thumbs_up
	  todo_item_task_cycle
		todo_item_reminds_aggregate {
			aggregate {
				count
			}
		}
    }
  }



  `;


	let variables = {
		"id": id,
		"todo_date": {
			"_eq": moment().format('yyyy-MM-DD')
		},

		"where1": {
			"todo_status": {
				"_eq": false
			},
			"todo_date": {
				"_gt": moment().format('yyyy-MM-DD')
			}
		}
	}

	console.log(variables, "variables]]]]]]]]]]]]]]");
	return httpGraphql.post(graphqlUrl, {
		query: print(postData),
		variables,
	});
}
// 查询渲染到表单修改的任务
export function todo_item_by_pk_for_edit(id = '') {
	let postData = gql`
  query todo_item_by_pk_for_edit($id: uuid = "") {
    todo_item_by_pk(id: $id) {
      todo_item_name
      todo_item_description
      todo_end_time
      todo_start_time
      user_id
      sort
      todo_item_loop_time
      todo_item_remind
      todo_remind_time
      todo_item_need_nums
      todo_item_show
      todo_item_task_cycle
    }
  }
  `;
	let variables = {
		"id": id,
	}
	return httpGraphql.post(graphqlUrl, {
		query: print(postData),
		variables,
	});
}
// 修改渲染到表单修改的任务,用过滤值的给定值递增数字列  sort递增10
// mutation update_todo_item_by_pk_for_edit ($id: uuid = "", $_set: todo_item_set_input = {}) {
//   update_todo_item_by_pk(_inc: {sort: 10}, pk_columns: {id: $id}, _set: $_set) {
//     sort
//   }
// }
export function update_todo_item_by_pk_for_edit(variables) {
	let postData = gql`
mutation update_todo_item_by_pk($id: uuid = "", $_set: todo_item_set_input = {}) {
  update_todo_item_by_pk(pk_columns: {id: $id}, _set: $_set) {
    id
    sort
    todo_item_show
    todo_item_remind
    user_id
    todo_end_time
    todo_start_time
  }
}

  `;

	return httpGraphql.post(graphqlUrl, {
		query: print(postData),
		variables,
	});
}



// 查询积分
export function getScores(user_id) {
	let postData = gql`
    query scores_by_user_id($_eq: uuid = "") {
      scores(where: { user_id: { _eq: $_eq } }) {
        created_at
        id
        scores_number
        scores_show
        updated_at
        user_id
      }
    }
  `;
	return httpGraphql.post(graphqlUrl, {
		query: print(postData),
		variables: {
			_eq: user_id,
		},
	});
}



// 添加目标
export function insert_todo_item_one(object) {
	let postData = gql`
    mutation insert_todo_item_one($object: todo_item_insert_input = {}) {
      insert_todo_item_one(object: $object) {
        id
      }
    }
  `;
	return httpGraphql.post(graphqlUrl, {
		query: print(postData),
		variables: {
			object,
		},
	});
}

//添加执行次数及每次的执行时间
export function insert_todo_item_need_do(objects) {
	let postData = gql`
    mutation insert_todo_item_need_do(
      $objects: [todo_item_need_do_insert_input!] = {}
    ) {
      insert_todo_item_need_do(objects: $objects) {
        affected_rows
      }
    }
  `;
	return httpGraphql.post(graphqlUrl, {
		query: print(postData),
		variables: {
			objects,
		},
	});
}

// 删除目标
export function delete_todo_item_by_pk(id) {
	let postData = gql`
  mutation delete_todo_item_by_pk($id: uuid = "") {
    delete_todo_item_by_pk(id: $id) {
      id
    }
  }
  `;
	return httpGraphql.post(graphqlUrl, {
		query: print(postData),
		variables: {
			id,
		},
	});
}
// 添加备忘
export function insert_todo_item_note_one(object) {
	let postData = gql`
  mutation insert_todo_item_note_one($object: todo_item_note_insert_input = {}) {
    insert_todo_item_note_one(object: $object) {
            content
            created_at
            id
    }
  }
  `;
	return httpGraphql.post(graphqlUrl, {
		query: print(postData),
		variables: {
			object
		},
	});
}


//完成当天任务,更新待执行任务数据
export function update_todo_item_need_do_by_pk(id) {
	let postData = gql`
  mutation update_todo_item_need_do_by_pk($id: uuid = "") {
    update_todo_item_need_do_by_pk(pk_columns: {id: $id}, _set: {todo_status: true}) {
      id
      todo_status
      todo_item_id
	  
    }
  }
  `;
	return httpGraphql.post(graphqlUrl, {
		query: print(postData),
		variables: {
			id
		},
	});
}

// 添加浏览量
export function update_todo_item_by_pk(id, type, oldNums) {

	let variables = {
		"id": id,
		_set: {}
	}

	variables._set[type] = Number(oldNums + 1)


	let postData = gql`
mutation update_todo_item_by_pk($id: uuid = "", $_set: todo_item_set_input = {}) {
  update_todo_item_by_pk(pk_columns: {id: $id}, _set: $_set) {
    todo_item_views
	todo_item_thumbs_up
    id
  }
}

  `;
	return httpGraphql.post(graphqlUrl, {
		query: print(postData),
		variables,
	});
}


// 添加提醒
export function insert_todo_item_remind_one(variables) {


	let postData = gql`
mutation insert_todo_item_remind_one($object: todo_item_remind_insert_input = {}) {
  insert_todo_item_remind_one(object: $object) {
    updated_at
    todo_item_id
    remind_user_id
    id
    created_at
    content
  }
}

  `;
	return httpGraphql.post(graphqlUrl, {
		query: print(postData),
		variables,
	});
}

// 查询提醒信息列表
export function todo_item_remind(todo_item_id) {


	let postData = gql`
query todo_item_remind($_eq: uuid = "") {
  todo_item_remind(where: {todo_item_id: {_eq: $_eq}}, order_by: {created_at: desc}) {
    updated_at
    todo_item_id
    remind_user_id
    id
    created_at
    content
	    user {
	      avatarUrl
	      user_gender
	      user_name
	    }
  }
}

  `;
	return httpGraphql.post(graphqlUrl, {
		query: print(postData),
		variables: {

			_eq: todo_item_id

		}
	});
}

// 获取备忘
export function query_notes_by_user_id(variables) {


	let postData = gql`
query notes($user_id: uuid = "", $offset: Int = 0, $limit: Int = 10) {
  notes(where: {user_id: {_eq: $user_id}}, offset: $offset, limit: $limit, order_by: {created_at: desc}) {
    created_at
    id
    notes_content
    notes_show
    updated_at
    user_id
  }
  notes_aggregate(where: {user_id: {_eq: $user_id}}) {
    aggregate {
      count
    }
  }
}


  `;
	return httpGraphql.post(graphqlUrl, {
		query: print(postData),
		variables
	});
}



// 添加备忘
export function InsertNotes(variables) {


	let postData = gql`
mutation InsertNotes($user_id: uuid = null, $notes_content: String = "") {
  insert_notes(objects: {user_id: $user_id, notes_content: $notes_content}) {
    affected_rows
    returning {
      created_at
      updated_at
      id
      user_id
      notes_content
      notes_show
    }
  }
}



  `;
	return httpGraphql.post(graphqlUrl, {
		query: print(postData),
		variables
	});
}

// 编辑备忘
export function update_notes_by_pk(variables) {


	let postData = gql`
mutation update_notes_by_pk($notes_content: String = "", $id: uuid = "") {
  update_notes_by_pk(pk_columns: {id: $id}, _set: {notes_content: $notes_content}) {
    created_at
    id
    notes_content
    notes_show
    updated_at
    user_id
  }
}

  `;
	return httpGraphql.post(graphqlUrl, {
		query: print(postData),
		variables
	});
}

// 删除备忘
export function delete_notes_by_pk(id) {


	let postData = gql`
mutation delete_notes_by_pk($id: uuid = "") {
  delete_notes_by_pk(id: $id) {
    id
  }
}


  `;
	return httpGraphql.post(graphqlUrl, {
		query: print(postData),
		variables: {
			id
		}
	});
}

// 分享加分
export function addScore(user_id) {

	let item = {
		score_item_number: 1,
		scores_source: 3,
		scores_source_des: "分享加分",
		user_id
	}

	let objects = []

	objects.push(item)

	console.log(objects, "objects=================>>>");


	let postData = gql`
mutation insert_score_item($objects: [score_item_insert_input!] = {}) {
  insert_score_item(objects: $objects) {
    affected_rows
  }
}
  `

	return httpGraphql.post(graphqlUrl, {
		query: print(postData),
		variables: {
			objects
		}
	})
}
